package com.yuzhi.master.sewage.rmstSz.service;

import com.yuzhi.master.conBjMx.domain.vo.ConBjMxVo;
import com.yuzhi.master.drainAlarmRule.domain.vo.DrainAlarmRuleVo;
import com.yuzhi.master.drainRRmst.domain.vo.DrainRRmstVo;
import com.yuzhi.master.sewage.rmstSz.entity.DrainRmstSz;

import java.util.List;

public interface IAlarmRuleProcessor {

    /**
     * 检查报警规则
     * @param drainRmstSz 实时数据
     */
    List<String> checkAlarmRules(DrainRmstSz drainRmstSz, DrainRRmstVo drainRRmstVo);

    /**
     * 判断是否满足规则间隔要求以允许新增记录
     * 优先规则：
     * 1) 无历史记录 -> 允许
     * 2) intervalUnit 为空或 intervalValue 为空 -> 允许
     * 3) intervalUnit 包含“采集即触发” -> 允许
     * 4) 按“小时/分钟”等单位计算是否超过间隔
     * @return true:可以新增告警   false:不允许
     */
    boolean shouldInsertByInterval(List<ConBjMxVo> historyList, DrainAlarmRuleVo alarmRule);

}
